package com.example.xianji.activity;

import java.util.ArrayList;
import java.util.HashMap;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.Request.Method;
import com.android.volley.Response.Listener;
import com.android.volley.toolbox.JsonObjectRequest;
import com.example.xianji.Contant;
import com.example.xianji.XJApplication;
import com.example.xianji.R;
import com.example.xianji.adapter.XuQiu_Adapter;
import com.example.xianji.bean.XuQiu;

import com.example.xianji.constant.Constant;
import com.example.xianji.utils.sp.PreferenceEngine;
import com.example.xianji.widgets.MyListview;
import com.example.xianji.widgets.PullToRefreshLayout_two;
import com.example.xianji.widgets.PullToRefreshLayout_two.OnRefreshListener;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.Toast;

public class Main_Expert_XuQiuTingActivity extends Activity implements OnRefreshListener {
    private ImageView expert_xuqiu_back;
    //    private SharedPreferences sp;
//    private Editor ed;
    private ArrayList<XuQiu> expert_list = new ArrayList<XuQiu>();
    private XuQiu_Adapter mXuQiu_Adapter;
    private PullToRefreshLayout_two expert_PullToRefreshLayout_two;
    private MyListview expert_mylistview;
    private int page = 1;

    private Handler handler = new Handler() {

        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case 1:
                    expert_mylistview.setAdapter(mXuQiu_Adapter);
                    expert_PullToRefreshLayout_two.refreshFinish(PullToRefreshLayout_two.SUCCEED);
                    break;
                case 2:
                    mXuQiu_Adapter.notifyDataSetChanged();
                    expert_PullToRefreshLayout_two.loadmoreFinish(PullToRefreshLayout_two.SUCCEED);
                    break;
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main__expert__xu_qiu_ting);
        //	XJApplication.getInstance().addActivity(this);
        expert_xuqiu_back = (ImageView) findViewById(R.id.expert_xuqiu_back);
//        sp = getSharedPreferences("text", MODE_PRIVATE);
//        ed = sp.edit();
        expert_PullToRefreshLayout_two = (PullToRefreshLayout_two) findViewById(R.id.expert_PullToRefreshLayout_two);

        expert_mylistview = (MyListview) findViewById(R.id.expert_mylistview);
        mXuQiu_Adapter = new XuQiu_Adapter(this, expert_list);
        expert_xuqiu_back.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Main_Expert_XuQiuTingActivity.this.finish();
            }
        });
        get_expert_xuqiu();
        expert_PullToRefreshLayout_two.setOnRefreshListener(this);
    }

    public void get_expert_xuqiu() {
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("token", PreferenceEngine.getInstance().getString(Constant.SP.NAME, Constant.SP.KEY_XIANJI_TOKEN, ""));
//        map.put("token", sp.getString("xianji_token", ""));
        map.put("page", 1);
        JSONObject params = new JSONObject(map);
        JsonObjectRequest request = new JsonObjectRequest(Method.POST, Contant.expert_xuqiu,
                params, new Listener<JSONObject>() {

            @Override
            public void onResponse(JSONObject response) {
                try {
                    if (response.getInt("status") == 1) {
                        expert_list.clear();
                        JSONArray array = response.getJSONArray("data");
                        if (array.length() > 0) {
                            for (int i = 0; i < array.length(); i++) {
                                JSONObject object = array.getJSONObject(i);
                                XuQiu mXuQiu = new XuQiu();
                                mXuQiu.setTitle(object.getString("title"));
                                mXuQiu.setBudget(object.getString("budget"));
                                mXuQiu.setBudget_val(object.getString("budget_val"));
                                mXuQiu.setId(object.getString("id"));
                                expert_list.add(mXuQiu);
                            }
                        } else {
                            Toast.makeText(Main_Expert_XuQiuTingActivity.this, "您还没有数据哦！", Toast.LENGTH_LONG).show();
                        }
                        handler.sendEmptyMessage(1);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                expert_PullToRefreshLayout_two.refreshFinish(PullToRefreshLayout_two.SUCCEED);
            }
        });
        XJApplication.getHttpQueues().cancelAll("abcPost");
        request.setTag("abcPost");
        request.setRetryPolicy(new DefaultRetryPolicy(50 * 1000, 1, 1.0f));
        XJApplication.getHttpQueues().add(request);
        XJApplication.getHttpQueues().start();
    }

    public void get_expert_xuqiu_more() {
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("token", PreferenceEngine.getInstance().getString(Constant.SP.NAME, Constant.SP.KEY_XIANJI_TOKEN, ""));
//        map.put("token", sp.getString("xianji_token", ""));
        map.put("page", page);
        JSONObject params = new JSONObject(map);
        JsonObjectRequest request = new JsonObjectRequest(Method.POST, Contant.expert_xuqiu,
                params, new Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                try {

                    if (response.getInt("status") == 1) {
                        JSONArray array = response.getJSONArray("data");

                        if (array.length() > 0) {
                            for (int i = 0; i < array.length(); i++) {
                                JSONObject object = array.getJSONObject(i);
                                XuQiu mXuQiu = new XuQiu();
                                mXuQiu.setTitle(object.getString("title"));
                                mXuQiu.setBudget(object.getString("budget"));
                                mXuQiu.setBudget_val(object.getString("budget_val"));
                                mXuQiu.setId(object.getString("id"));
                                expert_list.add(mXuQiu);
                            }
                        } else {
                            Toast.makeText(Main_Expert_XuQiuTingActivity.this, "没有更多数据哦！", Toast.LENGTH_LONG).show();
                        }
                        handler.sendEmptyMessage(2);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                expert_PullToRefreshLayout_two.loadmoreFinish(PullToRefreshLayout_two.SUCCEED);
            }
        });
        XJApplication.getHttpQueues().cancelAll("abcPost");
        request.setTag("abcPost");
        request.setRetryPolicy(new DefaultRetryPolicy(50 * 1000, 1, 1.0f));
        XJApplication.getHttpQueues().add(request);
        XJApplication.getHttpQueues().start();
    }

    @Override
    public void onRefresh(PullToRefreshLayout_two pullToRefreshLayout) {
        page = 1;
        get_expert_xuqiu();
    }

    @Override
    public void onLoadMore(PullToRefreshLayout_two pullToRefreshLayout) {
        page++;
        get_expert_xuqiu_more();

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        handler.removeCallbacksAndMessages(null);
    }
}
